/*
 * @Description: Lisonglin[2:30 player]
 * @Date: 2021-08-11 16:17:36
 * @LastEditTime: 2021-08-11 16:36:42
 * @FilePath: \web\mysql_insert.c
 */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <mysql/mysql.h>

#define SQL_SIZE 256 
#define IP "127.0.0.1"
#define USER "root"
#define PASSWD "1234"
#define DATABASE "agricultural_iot_system"
#define PORT 3306

int main(int argc,char* argv[]){
	if(argc<3){
		perror("input number error!\n");
		exit(0);
	}
	int a=0;
	int tid = 0;
	int insert_num = 0;
	while(argv[1][a]){
		tid*=10;
		tid+=(argv[1][a]-'0');
		a++;
	}
	a=0;
	while(argv[2][a]){
		insert_num*=10;
		insert_num+=(argv[2][a]-'0');
		a++;
	}
	printf("tid=%d  insert_num=%d\n",tid,insert_num);
	float* temp = (float *)malloc(sizeof(float)*insert_num);
	float* humi = (float *)malloc(sizeof(float)*insert_num);
	int* light= malloc(sizeof(int)*insert_num);
	memset(temp,0,sizeof(float)*insert_num);
	memset(humi,0,sizeof(float)*insert_num);
	memset(light,0,sizeof(int)*insert_num);
	for(int i = 0 ; i < insert_num ; ++i ){
		temp[i] = rand()%20+15.4;
		humi[i] = rand()%40+30.3;
		light[i] = rand()%80+10;
	}

	/***  将用户信息写入MySQL数据库中  ***/ 
	MYSQL* conn;

	// 初始化 MySQL
	conn = mysql_init(NULL);
	if(NULL == conn)
	{
		printf("errno:%d error:%s\n",mysql_errno(conn),mysql_error(conn));
		exit(-1);
	}

	//尝试与运行在主机上的MySQL数据库引擎建立连接
	if(NULL == mysql_real_connect(conn,IP,USER,PASSWD,DATABASE,PORT,NULL,0))
	{
		printf("---errno:%d error:%s\n\n",mysql_errno(conn),mysql_error(conn));
		exit(-1);
	}

	// 根据mysql的autocommit参数设置来决定是否自动提交
	mysql_autocommit(conn,true);

	// 设定数据库编码
	mysql_query(conn,"SET NAMES 'utf8'");
	mysql_query(conn,"SET CHARACTER SET utf8");
	mysql_query(conn,"SET CHARACTER_SET_RESULT = utf8");

	char cmd[SQL_SIZE];
	bzero(cmd, SQL_SIZE);

	for(int i = 0 ; i < insert_num ; i++ ){
		// 将sql语句写入cmd变量
		sprintf(cmd, "insert into stm32_data(tid,temp,humi,light) values(%d,%.1f,%.1f,%d);",tid,temp[i],humi[i],light[i]);

		// 向与指定的连接标识符关联的服务器中的当前活动数据库发送一条查询
		if(mysql_query(conn,cmd) != 0)
		{
			printf("errno:%d error:%s\n\n",mysql_errno(conn),mysql_error(conn));
			exit(-1);
		}
	}
	printf("数据成功插入数据库!\n");
	return 0;
}


